package version1;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/*
* 封装
* Mysql封装工具类：链接对应数据库
* Mysql与Oracle具备：url、username、password
* 所有数据库公用的定义为属性
* 2.getParam（String 路径） 获取参数方法：连接成功数据库操作
* 2.1外置文件【url、账号、密码】统一配置文件中【形式：键值对】
*        db_mysql.properties   对应Java Properties类读取文件键值对
* */
public class Mysql {
//    定义数据库基本属性：私有化静态属性   类直接调取属性
    private static String url;
    private static String username;
    private static String password;
//    2.定义方法：连接成功数据库  文件路径传入
    public static void getParam(String fileName) throws IOException {
//2.1读取db_mysql.properties文件--Properties类读取文件键和值
        Properties p=new Properties();
//        2.1【补充2】低级流--搬运数据--传入fileName
//        Mysql.class 表示当前Mysql类的Class对象
//        理解：图书馆--mysql书籍区域
//        getClassLoader()获取当前类的加载器【加载器：根据路径执行配置文件】
//        理解：图书馆--mysql书籍区域--找管理员--找到对应【db_mysql.properties】书籍
        InputStream fis=
                Mysql.class.getClassLoader().getResourceAsStream(fileName);
//        2.1【补充】Properties类提供lood()方法:必须传入流--低级流--搬运数据
        p.load(fis);
        //2.2从db_mysql.properties读取的键值对信息
        //赋值给当前Mysql的数据库基本信息【url、用户、密码】
//        Properties类提供方法getProperty("键") 通过键找值
        url=p.getProperty("url");
        username=p.getProperty("username");
        password=p.getProperty("password");
//        2.3打桩 测试是否连接成功
        System.out.println("数据库基本信息："+url+username+password);
    }
//    3.测试工具类--链接成功数据库【外置文件--配置Mysql基本信息】
public static void main(String[] args) throws IOException, SQLException {
    Mysql.getParam("db_mysql.properties");
//    作业2：参考Mysql工具类--编写Oracle工具类
//    目的：工具类--连接成功不同的数据库【外置文件】

//    作业3：【增加一条操作--mi库--book】查询
//    JDBC:Connection、Statement      ResultSet
//    1.创建数据链接操作
    Connection con=
            DriverManager.getConnection(url,username,password);
//    2.执行sql---创建成功数据库
    String sql=
            "insert into book values(6,'余华','活着',35,'2023',90,'否')";
    Statement st =con.createStatement();
    //增删改 executeUpdate()  返回成功几条记录
   int rows= st.executeUpdate(sql);
    System.out.println("book表中添加了"+rows+"条记录");

    String sql1="select * from book";
    ResultSet rs=st.executeQuery(sql1);
    while(rs.next()){
        int id=rs.getInt("id");
        String author=rs.getString("author");
        String name=rs.getString("name");
        int price=rs.getInt("price");
        int number=rs.getInt("number");
        String discount=rs.getString("discount");
        System.out.println("book表中所有数据：");
    }
    rs.close();
    st.close();
    con.close();

}
}


